#include "tiffiop.h"

int TIFFFlush( TIFF* tif ) {
  if( tif->tif_mode != O_RDONLY ) {
    if( !TIFFFlushData( tif ) ) {
      return ( 0 );
    }
    if( ( tif->tif_flags & TIFF_DIRTYDIRECT ) &&
        !TIFFWriteDirectory( tif ) ) {
      return ( 0 );
    }
  }
  return ( 1 );
}

int TIFFFlushData( TIFF* tif ) {
  if( ( tif->tif_flags & TIFF_BEENWRITING ) == 0 ) {
    return ( 0 );
  }
  if( tif->tif_flags & TIFF_POSTENCODE ) {
    tif->tif_flags &= ~TIFF_POSTENCODE;
    if( !( *tif->tif_postencode )( tif ) ) {
      return ( 0 );
    }
  }
  return ( TIFFFlushData1( tif ) );
}

